import Vue from 'vue'
import moment from 'moment'

// option value转label
Vue.filter('transOption', function (value, option, labelKey, valueKey) {
  if (!value) {
    return ''
  }
  for (let i = 0; i < option.length; i++) {
    if (option[i][labelKey || 'value'] === value) {
      return option[i][valueKey || 'label']
    }
  }
})

// 筛选对象数组
Vue.filter('filterOption', function (value, filterKey, filterValue) {
  if (!Array.isArray(value)) {
    return value
  }
  let rtnArr = []
  for (let i = 0; i < value.length; i++) {
    if (value[i][filterKey] === filterValue) {
      rtnArr.push(value[i])
    }
  }
  return rtnArr
})

// 格式化日期
Vue.filter('dateFormat', function (value, formatter, origin) {
  if (!value) {
    return ''
  }
  return moment(value, origin || 'YYYY-MM-DD hh:mm:ss').format(formatter || 'YYYY-MM-DD')
})

// 时间戳转日期
Vue.filter('unixFormat', function (value, formatter) {
  if (!value) {
    return ''
  }
  return moment(value).format(formatter || 'YYYY-MM-DD')
})

// 格式化价格
Vue.filter('price', function (value, symble) {
  if (!value && value !== 0) {
    return ''
  }
  symble = symble || symble === '' ? symble : '￥'
  if (value === 0) {
    return symble + '0.00'
  }
  return symble + parseFloat(value).toFixed(2)
})

// 价格数据格式化
Vue.filter('priceFormat', function (val, decimal) {
  if (!val) {
    return ''
  }
  if (decimal === 0) {
    return parseInt(val)
  } else {
    return val.toFixed(decimal)
  }
})
